V8 Engine என்றால் என்ன?
V8 engine என்பது Google இன் திறந்த மூல JavaScript engine ஆகும், இது Chrome மற்றும் Node.js ஆகியவற்றால் பயன்படுத்தப்படுகிறது.
இது வேகமான இயக்கத்திற்காக JavaScript ஐ இயந்திர குறியீட்டிற்கு தொகுக்கிறது.
தோற்றம்
2008 இல் Chrome க்காக Google மூலம் உருவாக்கப்பட்டது
ஒருங்கிணைப்பு
Node.js சேவையகத்தில் JavaScript இயக்க நேரத்தை வழங்க V8 ஐப் பயன்படுத்துகிறது
அம்சங்கள்
Just-In-Time தொகுப்பு, திறமையான குப்பை சேகரிப்பு, ES6+ ஆதரவு
ஏன் V8 Node.js ஐ வேகமாக்குகிறது
Just-In-Time (JIT) தொகுப்பு
அதை விளக்குவதற்குப் பதிலாக JavaScript ஐ தேர்வுமுறை செய்யப்பட்ட இயந்திர குறியீட்டிற்கு மாற்றுகிறது
மறைக்கப்பட்ட வகுப்புகள்
JavaScript பொருள்களில் பண்பு அணுகலை தேர்வுமுறை செய்கிறது
திறமையான குப்பை சேகரிப்பு
கசிவுகளைத் தடுக்கவும் செயல்திறனைத் தேர்வுமுறை செய்யவும் நினைவகத்தை நிர்வகிக்கிறது
Inline Caching
பொருள் பண்புகளை எங்கு கண்டுபிடிப்பது என்பதை நினைவில் வைத்து பண்பு அணுகலை வேகப்படுத்துகிறது
உதாரணம்: Node.js இல் V8 பதிப்பைச் சரிபார்க்கவும்
// உங்கள் Node.js நிறுவலில் பயன்படுத்தப்படும் V8 engine பதிப்பைக் காட்டு
console.log(`V8 version: ${process.versions.v8}`);
Node.js இல் V8 இன் பங்கைப் புரிந்துகொள்வது
V8 Node.js கட்டப்பட்டுள்ள முக்கிய JavaScript இயக்க சூழலை வழங்குகிறது.
இது Node.js க்கு அனுமதிக்கிறது:
- வலை உலாவியின் வெளியே JavaScript குறியீட்டை இயக்க
- இயக்க முறைமை செயல்பாட்டை அணுக (கோப்பு முறைமை, நெட்வொர்கிங், முதலியன)
- Chrome ஐ இயக்கும் அதே JavaScript engine ஐ ஒருங்கிணைப்பிற்காகப் பயன்படுத்த
உதாரணம்: V8 நினைவக பயன்பாடு
// V8 இன் heap நினைவக பயன்பாட்டைப் பற்றிய தகவலைப் பெறவும்
const v8 = require('v8');
const heapStats = v8.getHeapStatistics();
console.log('Heap size limit:', (heapStats.heap_size_limit / 1024 / 1024).toFixed(2), 'MB');
console.log('Total heap size:', (heapStats.total_heap_size / 1024 / 1024).toFixed(2), 'MB');
console.log('Used heap size:', (heapStats.used_heap_size / 1024 / 1024).toFixed(2), 'MB');
V8 இன் புதுப்பிப்பு சுழற்சி
V8 புதிய JavaScript அம்சங்கள் மற்றும் செயல்திறன் தேர்வுமுறைகளுடன் தொடர்ந்து மேம்படுத்தப்பட்டு வருகிறது.
- Node.js தனது V8 engine பதிப்பை தவறாமல் புதுப்பிக்கிறது
- புதிய Node.js பதிப்புகள் பெரும்பாலும் V8 இன் புதிய பதிப்புகளை உள்ளடக்கும்
- இது புதிய JavaScript அம்சங்கள் மற்றும் சிறந்த செயல்திறனுக்கான அணுகலை வழங்குகிறது
V8 ECMAScript மற்றும் WebAssembly தரங்களை செயல்படுத்துகிறது.
ஒரு புதிய JavaScript அம்சம் ECMAScript தரத்தின் ஒரு பகுதியாக மாறும் போது, V8 இறுதியில் அதை செயல்படுத்தும், இது Chrome மற்றும் Node.js இரண்டிலும் கிடைக்கும்.
செயல்திறன் உதவிக்குறிப்பு:
V8 இன் JIT தொகுப்பு JavaScript குறியீட்டை நேரடியாக இயந்திர குறியீட்டிற்கு தொகுக்கிறது, இது விளக்கப்பட்ட குறியீட்டை விட 10-100 மடங்கு வேகமாக இயங்க அனுமதிக்கிறது. இதுதான் Node.js ஐ அதிக போக்குவரத்து சேவையகங்களுக்கு சிறந்ததாக்குகிறது.
V8 கட்டமைப்பு கண்ணோட்டம்
Parser
JavaScript மூலத்தை எடுத்து Abstract Syntax Tree (AST) ஆக மாற்றுகிறது
Ignition Interpreter
AST ஐ bytecode ஆக மாற்றி ஆரம்ப இயக்கத்தை வழங்குகிறது
TurboFan Compiler
அடிக்கடி பயன்படுத்தப்படும் bytecode ஐ அதிவேக இயந்திர குறியீட்டிற்கு தேர்வுமுறை செய்கிறது
Orinoco Garbage Collector
நினைவகத்தைத் தானாகவே நிர்வகித்து குப்பை சேகரிக்கிறது
பயிற்சி
V8 பதிப்பை அச்சிட குறியீட்டை முடிக்கவும்:
console.log(process.______.v8);